﻿
using System;
using Rest;
using System.Globalization;
using System.Collections.Generic;
using ServiceStack.ServiceHost;
using ServiceStack.ServiceInterface;

namespace V82.Справочники
{
	//TipovyeAnalizyNomenklatury
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры","")]
	public class ТиповыеАнализыНоменклатурыЗапрос: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыЗапрос>
	{
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/НайтиПоСсылке","{Ссылка}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ПоСсылке","{Ссылка}")]
	public class ТиповыеАнализыНоменклатурыНайтиПоСсылке: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыНайтиПоСсылке>
	{
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/НайтиПоКоду","{Код}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ПоКоду","{Код}")]
	public class ТиповыеАнализыНоменклатурыНайтиПоКоду: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыНайтиПоКоду>
	{
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/НайтиПоНаименованию","{Наименование}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ПоНаименованию","{Наименование}")]
	public class ТиповыеАнализыНоменклатурыНайтиПоНаименованию: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыНайтиПоНаименованию>
	{
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоСсылке","{___Первые}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоСсылке","{___Первые}/{___Мин}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоСсылке","{___Первые}/{___Мин}/{___Макс}")]
	public class ТиповыеАнализыНоменклатурыВыбратьПоСсылке: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыВыбратьПоСсылке>
	{
		public int ___Первые {get; set;}
		public Guid ___Мин {get; set;}
		public Guid ___Макс {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоКоду","{___Первые}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоКоду","{___Первые}/{___Мин}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоКоду","{___Первые}/{___Мин}/{___Макс}")]
	public class ТиповыеАнализыНоменклатурыВыбратьПоКоду: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыВыбратьПоКоду>
	{
		public int ___Первые {get; set;}
		public string ___Мин {get; set;}
		public string ___Макс {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоНаименованию","{___Первые}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоНаименованию","{___Первые}/{___Мин}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ВыбратьПоНаименованию","{___Первые}/{___Мин}/{___Макс}")]
	public class ТиповыеАнализыНоменклатурыВыбратьПоНаименованию: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыВыбратьПоНаименованию>
	{
		public int ___Первые {get; set;}
		public string ___Мин {get; set;}
		public string ___Макс {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/СтраницаПоСсылке","{___Размер}/{___Номер}")]
	public class ТиповыеАнализыНоменклатурыСтраницаПоСсылке: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыСтраницаПоСсылке>
	{
		public int ___Размер {get; set;}
		public int ___Номер {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/СтраницаПоКоду","{___Размер}/{___Номер}")]
	public class ТиповыеАнализыНоменклатурыСтраницаПоКоду: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыСтраницаПоКоду>
	{
		public int ___Размер {get; set;}
		public int ___Номер {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/СтраницаПоНаименованию","{___Размер}/{___Номер}")]
	public class ТиповыеАнализыНоменклатурыСтраницаПоНаименованию: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыСтраницаПоНаименованию>
	{
		public int ___Размер {get; set;}
		public int ___Номер {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ИерархияВыбратьПоСсылке","{___Родитель}/{___Режим}/{___Первые}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ИерархияВыбратьПоСсылке","{___Родитель}/{___Режим}/{___Первые}/{___Мин}")]
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ИерархияВыбратьПоСсылке","{___Родитель}/{___Режим}/{___Первые}/{___Мин}/{___Макс}")]
	public class ТиповыеАнализыНоменклатурыИерархияВыбратьПоСсылке: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыИерархияВыбратьПоСсылке>
	{
		public Guid ___Родитель {get; set;}
		public int ___Режим {get; set;}
		public int ___Первые {get; set;}
		public Guid ___Мин {get; set;}
		public Guid ___Макс {get; set;}
	}
	[Маршрут("Справочники/ТиповыеАнализыНоменклатуры/ИерархияСтраницаПоСсылке","{___Родитель}/{___Режим}/{___Размер}/{___Номер}")]
	public class ТиповыеАнализыНоменклатурыИерархияСтраницаПоСсылке: V82.СправочникиСсылка.ТиповыеАнализыНоменклатуры,IReturn<ТиповыеАнализыНоменклатурыИерархияСтраницаПоСсылке>
	{
		public Guid ___Родитель {get; set;}
		public int ___Режим {get; set;}
		public int ___Размер {get; set;}
		public int ___Номер {get; set;}
	}

	public class ТиповыеАнализыНоменклатурыОтвет
	{
		public string Ответ {get;set;}
	}

	public partial class ТиповыеАнализыНоменклатурыСервис : Service
	{
		
		public object Get(ТиповыеАнализыНоменклатурыЗапрос Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыНайтиПоСсылке Запрос)
		{
			if (Запрос.Ссылка == null)
			{
				return null;
			}
			var Ссылка = V82.Справочники.ТиповыеАнализыНоменклатуры.НайтиПоСсылке(Запрос.Ссылка);
			if (Ссылка == null)
			{
				return new ТиповыеАнализыНоменклатурыОтвет() { Ответ = "ТиповыеАнализыНоменклатуры c ссылкой '" + Запрос.Ссылка + "' не найден." };
			}
			return Ссылка.ПолучитьОбъект();
		}
		
		public object Get(ТиповыеАнализыНоменклатурыНайтиПоКоду Запрос)
		{
			if(Запрос.Код == null)
			{
				return null;
			}
			var СтрокаКод = System.Uri.UnescapeDataString(Запрос.Код);
			var Ссылка = V82.Справочники.ТиповыеАнализыНоменклатуры.НайтиПоКоду(СтрокаКод);
			if (Ссылка == null)
			{
				return new ТиповыеАнализыНоменклатурыОтвет() {Ответ = "ТиповыеАнализыНоменклатуры c кодом '" + Запрос.Код + "' не найдено."};
			}
			return Ссылка.ПолучитьОбъект();
		}
		
		public object Get(ТиповыеАнализыНоменклатурыНайтиПоНаименованию Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыВыбратьПоСсылке Запрос)
		{
			if (Запрос.___Макс == Guid.Empty)
			{
				Запрос.___Макс = Guid.Parse("ffffffff-ffff-ffff-ffff-ffffffffffff");
			}
			var Коллекция = new List<object>();
			foreach (var Ссылка in V82.Справочники.ТиповыеАнализыНоменклатуры.ВыбратьПоСсылке(Запрос.___Первые, Запрос.___Мин, Запрос.___Макс))
			{
				Коллекция.Add(Ссылка.ПолучитьОбъект());
			}
			return Коллекция;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыВыбратьПоКоду Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыВыбратьПоНаименованию Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыСтраницаПоСсылке Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыСтраницаПоКоду Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыСтраницаПоНаименованию Запрос)
		{
			return null;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыИерархияВыбратьПоСсылке Запрос)
		{
			if (Запрос.___Макс == Guid.Empty)
			{
				Запрос.___Макс = Guid.Parse("ffffffff-ffff-ffff-ffff-ffffffffffff");
			}
			var Коллекция = new List<object>();
			foreach (var Ссылка in V82.Справочники.ТиповыеАнализыНоменклатуры.ИерархияВыбратьПоСсылке(Запрос.___Родитель,Запрос.___Режим,Запрос.___Первые, Запрос.___Мин, Запрос.___Макс))
			{
				Коллекция.Add(Ссылка.ПолучитьОбъект());
			}
			return Коллекция;
		}
		
		public object Get(ТиповыеАнализыНоменклатурыИерархияСтраницаПоСсылке Запрос)
		{
			return null;
		}

		public object Any(ТиповыеАнализыНоменклатурыЗапрос Запрос)
		{
			return new ТиповыеАнализыНоменклатурыОтвет {Ответ = "ТиповыеАнализыНоменклатуры, "};
		}

		public object Post(ТиповыеАнализыНоменклатурыЗапрос ЗапросТиповыеАнализыНоменклатуры)
		{
			var Ссылка = (СправочникиСсылка.ТиповыеАнализыНоменклатуры)ЗапросТиповыеАнализыНоменклатуры;
			var Объект = Ссылка.ПолучитьОбъект();
			Объект.Записать();
			return null;
		}


	}
}